草庐IT

Java Swingworker 和多线程

全部标签

java - 跨线程保留 Java 堆栈跟踪

我正在使用ExecutorService异步发送邮件,所以有一个类:classMailerimplementsRunnable{...处理发送。记录任何被捕获的异常,例如(匿名):javax.mail.internet.AddressException:fooisbaratjavax.mail.internet.InternetAddress.checkAddress(InternetAddress.java:1213)~[mail.jar:1.4.5]atjavax.mail.internet.InternetAddress.parse(InternetAddress.java:10

java - 在不可到达的线程中放置断点强制它运行

这段代码有一个奇怪的问题:classTest{privatestaticbooleantest=false;publicstaticvoidmain(String[]args){newThread(()->{while(true){if(test){System.out.println("Printwhenbreakpointhere!");test=false;}}},"Thread1").start();newThread(()->{while(true){System.out.println("Printalways");try{Thread.sleep(2000);}catch

java - 意外的多线程结果

我写了几个Java类——SingleThreadedCompute和MultithreadedCompute——来证明一个事实(或者我一直认为是一个事实!)如果你并行计算-centric(无I/O)单核机器上的任务,你不会得到加速。事实上,我的理解是并行化这些任务实际上会减慢速度,因为现在你必须处理上下文切换开销。好吧,我运行了这些类,并行版本出人意料地运行得更快:单线程版本在我的机器上始终以略高于7秒的速度运行,而多线程版本在我的机器上始终以略高于6秒的速度运行。谁能解释这是怎么可能的?如果有人想自己查看或尝试,这里有类(class)。publicfinalclassSingleTh

Java:线程安全的 RandomAccessFile

经过一番认真的谷歌搜索后,我发现RandomAccessFile类不是线程安全的。现在我可以使用一个信号量来锁定所有读取和写入,但我认为它的性能不是很好。理论上应该可以一次进行多次读取和一次写入。我如何在Java中执行此操作?有可能吗?谢谢! 最佳答案 IcoulduseonesemaphoretolockallreadsandwritesbutIdon'tthinkthatperformsverywell.关于性能,永远不要考虑。始终测量。也就是说,java.util.concurrent.locks.ReentrantReadW

java - 如何从命令行查看内存使用情况、Java 程序的线程转储?

是否有任何已知的命令行工具可以让JVM查看Java程序的内存使用情况和线程转储。像headlessjvisualvm之类的东西? 最佳答案 您可以使用jstat获取gc信息,jstack获取堆栈跟踪和jmap获取内存统计信息和内存转储以供离线检查。 关于java-如何从命令行查看内存使用情况、Java程序的线程转储?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/8449977/

java - 当前线程方法java

所以我正在尝试为我正在制作的游戏使用线程。我对这个主题非常很陌生,所以我可能理解不正确。我的问题是currentThread()方法如何在javaAPI的Thread类中工作。API说“返回对当前正在执行的线程对象的引用。”,但据我了解多个线程同时运行。怎么可能只返回一个正在执行的线程? 最佳答案 调用currentThread的代码将在其中一个线程中执行,而不是在所有线程中执行,因此它可以专门获取该线程。 关于java-当前线程方法java,我们在StackOverflow上找到一个类

java - jMeter线程序列

我有一个包含以下http请求采样器的JMeter测试计划。登录调用一些需要登录用户的功能退出当我使用5个并行线程执行测试计划时,我发现在为某些线程调用采样器1之前调用了采样器2,这导致响应断言失败。有什么方法可以指定要执行的采样器序列吗? 最佳答案 这应该确保它们按顺序执行:那么让我们从线程组开始吧。线程数(用户)为5。所以假设您已经为您的登录采样器制定了逻辑。只需添加额外的采样器即可。因此,右键单击该示例Add>PostProcessors>BSFPostProcessor,在此后处理器大脚本空间内写入${__setPropert

java - HtmlUnit:每个线程一个 WebClient - 它是线程安全的吗?

我有很多线程。每个线程创建并使用它自己的WebClient(HtmlUnit框架)。没有一个线程使用来自其他线程的WebClient实例。它是线程安全的吗? 最佳答案 来自documentationNote:aWebClientinstanceisnotthreadsafe.Itisintendedtobeusedfromasinglethread.只要每个线程都创建自己的WebClient,就不会有任何问题。从你所说的来看,你做的是对的。 关于java-HtmlUnit:每个线程一个W

java - 确定哪个线程拥有监视器

有没有办法告诉Java对象,哪个线程(或null)当前拥有它的监视器?或者至少是一种判断当前线程是否拥有它的方法? 最佳答案 我自己找到了一些答案。要测试当前线程是否持有监视器,Thread.holdsLock存在!if(!Thread.holdsLock(data)){thrownewRuntimeException();//complain}这真的很快(亚微秒)并且从1.4开始可用。一般情况下,要测试哪个线程(或线程ID)持有锁,可以使用java.lang.management执行此操作类(感谢@amicngh)。publics

java - 何时在 java 多线程中重置 CyclicBarrier

我正在阅读以下链接中的CyclicBarrierhttp://java-latte.blogspot.in/2013/10/cyclicbarrier-in-java-concurrency.html.在示例1中,CyclicRaceDemo.javamain方法中,CyclicBarrier被重用,没有调用reset方法。我运行了这个例子,它运行良好。所以,我想知道reset方法有什么用。应该什么时候调用?还是我们根本不需要调用它? 最佳答案 CyclicBarrier是循环的,因为它可以在不重置的情况下重复使用。来自Javado